package com.gxnualbert.proxy.proxy;


import com.gxnualbert.proxy.reflect.ReflectServiceImpl;
/**
 * @auther gxnualbert
 * @create 2021-05-03-19:31
 */
public class ProxyTest {

    public static void main(String[] args) {
        testJdkProxy();
        System.out.println("#############################");
        tesCGLIBProxy();

    }
    public static void testJdkProxy() {
        JdkProxyExample jdk = new JdkProxyExample();
        // 绑定关系，因为挂在接口HelloWorld下，所以声明代理对象HelloWorld proxy
        HelloWorld proxy = (HelloWorld) jdk.bind(new HelloWorldImpl());
        // 注意，此时HelloWorld对象已经是一个代理对象，它会进入代理的逻辑方法invoke里
        proxy.sayHelloWorld();
    }

    public static void tesCGLIBProxy(){
        CglibProxyExample cpe = new CglibProxyExample();
        ReflectServiceImpl reflectService = (ReflectServiceImpl) cpe.getProxy(ReflectServiceImpl.class);
        reflectService.sayHello("chlib-陈晖");
    }


}
